package com.xiaoxu.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaoxu.content.model.dto.SaveTeachplanDto;
import com.xiaoxu.content.model.dto.TeachplanDto;
import com.xiaoxu.content.model.po.Teachplan;

import java.util.List;

/**
 * 课程基本信息管理业务接口
 * @author xiaoxu
 * @since 2023-01-15
 */
public interface TeachplanService extends IService<Teachplan> {

    /**
     * @description 查询课程计划树型结构
     * @param courseId 课程id
     * @return List<TeachplanDto>
     */
     List<TeachplanDto> findTeachplayTree(long courseId);

    /**
     * @description 保存或修改课程计划
     * @param teachplanDto  课程计划信息
     */
     void saveOrUpdateTeachplan(SaveTeachplanDto teachplanDto);

    /**
     * @description 删除课程计划
     * @param teachPlanId  课程计划id
     */
    void deleteTeachplan(Long teachPlanId);

    /**
     * 移动课程计划树 业务
     * @param teachPlanId 课程计划Id
     * @param direction  移动方向
     */
    void moveTeachplan(Long teachPlanId, String direction);

    /**
     * 通过步数移动教学计划
     * @param teachplan 教学计划信息
     * @param step 移动步数  整数就是向上移 <-> 负数就是向下移
     */
    void moveTeachplanByStep(Teachplan teachplan, int step);

}
